Contents

InfSpy
Ver 2.01 (06/21/94) with IntelliLib (tm)
(c) 1993,1994 Dean Software Design

Overview
Loading InfSpy
Closing InfSpy
Menu Options
Printing
Spying on Windows
Actions you can take
Spying on Your System
Tracing Real Time Information
Configuring InfSpy
Memory Information
Heap Information
InfSpy Window Manipulation
IntelliLib
Windows NT, OS2, Problems, Errors and GPFs!
Help Options
Version History


InfSpy Overview

InfSpy is a Windows utility that interrogates and lists the various items within your Windows environment, including:

A. Global Heap
B. Active Windows
C. Windows Tasks
D. Loaded Modules
E. Open Files
F. Memory Information
G. Dos Information

InfSpy also acts as a real-time tracing utility allowing you to trace Windows messages and serial communications.

Windows developers, testers, debuggers and technical assistants have few tools that will allow them to detail what exactly is loaded and running under Windows.  InfSpy will provide real-time information regarding the items that directly affect Windows and the user.

InfSpy provides multiple adjustable windows showing one of the above Windows items.  Each window can be independantly scrolled and examined.

InfSpy can also print or save values from it's examination of Windows as well as having several key utility features for terminating hung tasks and unloading loaded modules.


Loading InfSpy

InfSpy can be loaded:
- As an Icon from a Program Manager group.
- From the RUN feature of Program Manager or other Windows Shell programs.

If you have added InfSpy to a group within Program Manager (or other shells) you can load InfSpy by Clicking on the Icon.

If you use the RUN facility within Program Manager (or other shells) you can load InfSpy by simply typing "INFSPY" and pressing ENTER.


Closing InfSpy

You can close InfSpy by selecting the "Close" option from the System Menu, you can select "Exit" from the File Menu or you can double click your mouse on the System Menu indicator at the top left corner of the InfSpy Window.


IntelliLib
IntelliLib (tm)

This program utilizes IntelliLib (tm) Library management technology.

IntelliLib enables this program to selectively use Windows Dynamic Link Libraries (DLLs) to perform non-standard tasks.  The user has the ability to choose which Libraries are loaded, thereby allowing him to tailor this program to his specific needs.

IntelliLib also allows this program to fully operate without DLL modules that were expected.  Functionality for a missing Library is disabled from the main program.

Additional Topics:
Setting Active Libraries


Setting Active Libraries with IntelliLib

InfSpy can load several libraries that will provide you with more detailed information on several aspects of your Windows environment.

Using the IntelliLib setup screen, select each library that you want loaded or unloaded.

1. Load Windows Message Hook Library - This library contains the functions required to trace Windows messages.

2. Load Network Library - This library contains the functions required to view Network details.

3. Load Communications Trace Library - This library contains the functions required to trace communications sessions on serial ports.


Menu Options

InfSpy has the following menu options:

File Menu
Print Menu
Spy Menu
Action Menu
Trace Menu
System Menu
Configuration Menu
Memory Menu
Heap Menu
Window Menu
Help Menu


File Menu

Save As
Exit InfSpy


Save As

The Save As option will save the contents of the Active Window to a file. This is useful in order to save a snapshot for later review.

When selected, this option displays the standard Windows File Save dialog.  Enter a valid file name and select Ok to save the contents of the active Window.


Print Menu

Print Contents of Active Window
Print Options
Printer Selection
Printer Port Selection


Print Contents of Active Window

The Print Contents option will print the contents of the Active Window to a printer.


Print Options

Before printing a file or a portion of the Viewing Window, you must select the various print options from the Print Request window.

Printer - see the section on Selecting a Printer

Printer Port - see the section on Selecting a Communications Port

Margins - The Left,Right,Top and Bottom margins can be modified so that your print page size can be adjusted.  Valid values are from 0-page size in inches and parts of inches.

Copies - Select the number of copies to print.

Print Font  - You can choose between printing using the Font used in the viewer or the Default printer Font.

Print Lines - The values that are initially shown here are '1' and 'Number of Lines' in the text.  You may adjust these values to print only a portion of the file or Viewing Window.

Print Selected Text - If you only want a specific range of line numbers to print, select this button and enter the range of line numbers.

Print Line Numbers - If you select this field your output will have line numbers printed at the start of each line.

Print Page Numbers - If you select this field your output will have page numbers at the top of each page.


Selecting a Printer

The Print Request window will show you the currently selected printer in the Printer field.  If you want to change to another available printer, click on the Select Printer button.

The Select Printer window will appear with a list of available printers as well as your current printer.  To select any of the available printers, Click your mouse on the selection, it will then appear in the Current Printer field.

Click on Ok button to save your change of printer, otherwise click on Cancel to exit without changing your printer.

It is recommended that you Set up a printer that has been made active.  This can be done using the Setup button on either the Print Request window or the Select Printer window.  The setup for each printer will be different, consult the printer manual or the Windows manual for more information.


Selecting a Communications Port

You can change the communications port to which you will be printing.  This facility can let you print to a printer hooked to any valid port.  In addition, this option provides a means for you to print to a file.

In the Print Request window there will be a list of available ports and a field showing the port to which you are currently assigned, for example:

- LPT1:
- LPT2:
- LPT3:
- COM1:
- COM2:
- EPT:
- FILE:
- LPT1.OS2

To change ports, select the port to which you want to direct your output then double click your mouse on that selection.

When selected, the new port will appear in the Printer Port field.

Note: InfSpy or Windows will not ensure that a printer is connected to the port until such time as a file is printed.


Spy on Windows

InfSpy provides the following options for examining the various aspects of your Windows environment:

List and explore all Active Windows.
Build a Window Class List.
List all Open Files and allocated File Handles.
List all Windows Tasks.
List all Loaded Modules.
Build an Application Summary for a specific task.


Active Windows

This option lists all active windows in your Windows environment. A window can be described as any window, dialog box, list box, button, control or Icon that is active (either visible, hidden or minimized) in your Window environment.

Each line in the listbox contains the following information on a Window:

- The handle
- The type of Window (Top Level, Child, Icon)
- The parent handle
- The task handle
- Class name
- Window name

In order to further detail each Window double click on it.  This will create a dialog box that describes the following items on each Window:

- Window Style
- Class Style
- Windows function address
- Class extra allocation
- Windows extra allocation
- Window rectangle co-ordinates
- Window rectangle size
- Window related handles


Windows Class List

This option provides a sorted list of Window Classes currently in use by the Modules loaded in Windows.

Each class name is preceeded by the loaded module andthe Heap module from which it is loaded.

To get detailed information on the class module, double click on it.  A window will appear detailing the class attributes as well as instance and handle information.  Select the Ok button to close the detail window.


Open Files

This option provides a list of all open file on your system with their assigned File Handle, owner PSP segment, Path, Date and Time.

Certain applications (especially efficient ones) do not keep the file they are working on open, therefore those files may not appear in the list.


Windows Tasks

The 3rd list box lists all the active tasks within the Windows environment.  A task essentially is a loaded application that may have many modules or Windows.

The items listed here are the same as those listed by the Windows Task Manager which can be invoked by pressing CTRL-ESC on your keyboard.  Unfortunately the Windows Task Manager does not provide any detail on the listed task.

The information provided about each task is:

- The handle
- The parent's handle
- The module's handle
- The name of the task

In order to get more details on a task double click on it.  This will cause a dialog to appear that relates the following information:

- The parent handle
- The instance handle
- The value of the SS register
- The stack top
- The minimum stack
- The PSP offset
- The Queue handle
- The Module handle
- The SP register
- The Stack bottom
- Number of Events

Related subjects:
Terminating Tasks


Loaded Modules

This option builds a list of all the modules that are currently loaded by your Windows environment.  Modules include programs, DLL, other libraries, fonts, drivers and any other code that is loaded from a file.

When you double click on a module that is listed you will be presented with the size, date and time of the module as it appears on disk in the path that is listed.  InfSpy will also attempt to determine the Heap usage for the module by examining the Heap, a process which can be cancelled at any time by selecting the Cancel button on the status window.

Related Subjects:
Unloading Modules


Application Summary

The Application Summary option provides a means of summarizing all the Task, Module, Window and Heap information on a specific application.

A summary can be used to debug an application or provide a snapshot to an application vendor of what resources and memory an application is using.

Related Subjects:
Cancelling the Application Summary


Actions

Unloading Modules
Terminating Tasks
Windows Shutdown
Restarting Windows
Rebooting Your System


Terminating tasks

If a Windows program hangs or enters an infinite loop, Windows may not be able to terminate it using the standard Program Manager termination.  The 'Terminate' menu option will terminate any program in any state.

When you select 'Terminate' you will be asked to confirm that you want to actually terminate the task you have selected.

Note: as the warning states, terminating a task may adversely affect Windows.  It is strongly recommended that you Restart Windows immediately.


Unloading Modules

Windows loads many modules, sometimes multiple copies of a module.  In order to free resources, memory and generally improve the performance of your system, you can unload modules that are listed in the Loaded Modules list box. The 'Unload' menu option will unload any module listed in the list box.

When you select 'Unload' you will be asked to confirm that you want to actually unload the module you have selected.  If there are multiple copies of a module loaded, 'Unload' will unload a single copy each time, until finally all copies are unloaded.

Note: as the warning states, Unloading a module may adversely affect Windows.  Be cautious about what you unload since unloading device drivers, DLLs or other modules may cause applications to hang or Windows to lock up.


Windows Shutdown

The Windows Shutdown feature will cause Windows to Exit and return to the Dos Prompt.

Related Subjects:
Rapid Application Shutdown


Restart Windows

The Windows Restart feature will cause Windows to Exit, return to the Dos Prompt and then Restart.

This feature can be used when Windows is Acting Up or when Windows options have been changed and a Windows restart is requested.

Related Subjects:
Rapid Application Shutdown


Reboot Your System

The Reboot feature will cause Windows to Exit to the DOS prompt and will then automatically Reboot your system.

Related Subjects:
Rapid Application Shutdown


Rapid Application Shutdown

InfSpy provides a rapid application shutdown feature that is used with the Windows Shutdown, Restart and System Reboot options.

The rapid application shutdown destroys all active applications on your system (including DOS sessions) before causing Windows to Exit normally.

The drawbacks of using the rapid application shutdown are that applications may not save work to files as they normally would with a shutdown, however this is probably offset by the fact that Windows exits in 2-3 seconds!


Explore your System

Windows System Information
MultiMedia Devices
Master Environment
Current Environment
Newest DOS Environment
Device Redirection
DOS Memory Control Blocks
DOS Device Drivers
Timer and Clock Information
Network Information


Windows System Information

Windows System Information displays a message box containing Windows and DOS version information.

Select the Ok button to return to the Infspy Application.


MultiMedia Devices

InfSpy will interrogate the Multi-media Windows hooks and will provide you with a list of all Multi-media devices connects via Windows, including:

- CD Rom
- Keyboard, Mouse and Joystick
- Sound devices

Note: InfSpy can only detect those multi-media devices that were attached via a Windows call, any that are attached from DOS will not appear in this list.


Master Environment

The Master Environment contains all the environment variables set prior to Windows loading.  This list should provide similar results to doing the SET command from the DOS command line when Windows is not loaded.


Current Environment

The Current Environment contains all the environment variables carried over from DOS into the Windows environment.

This window also provides the amount of memory remaining to the current environment from the allocated maximum (default to 64k).


Newest DOS Environment

Multiple DOS systems may have several DOS environments.  This window will provide a summary of the environment variables within the newest DOS environment.

Note: In most cases a message box will appear informing you that the Newest DOS environment matches the Master DOS environment.  This is a normal situation for a single DOS system.


Device Redirection

The Device Redirection list provides a list of all Disk Drives and communications ports that are allocated via DOS, Windows or a Network.

Disks can be considered Removable, Fixed or Remote (Redirected to a network device).  Any disk that has no redirection information is either not attached to your system or is an invalid physical device.

For detailed disk information double click on any Permanent drive.Related Subjects:
Detailed Disk Information


Detailed Disk Information

The detailed disk information window provides the following information on any permanent disk drive attached to your system, including Network drives:

- Total space on disk (in bytes).
- Free space on disk (in bytes).
- Bytes per sector.
- Bytes per cluster.
- Disk serial number.

Select the Ok button to return to the Device Redirection window.


DOS Memory Control Blocks

This option will provide you with access to the DOS Memory Control Blocks as allocated when Windows was loaded.  This is similar to the results of a MEM or CHKMEM command in DOS.


DOS Device Drivers

This option will list the DOS Device Drivers as allocated outside windows.


Timer and Clock Information

This option will list the number of seconds since your system was last started and since Windows was loaded.  The Timer resolution refers to the frequency in which the clock is referenced for timer operations.

Infspy will also determine the number of user and system timers available on your system.  Any timers already allocated to other applications will not be enumerated by this function.


Network Information

In order for InfSpy to gather any Network information the "Load Network DLL" option must be set under the "Intellib" configuration screen.

The Network module will identify most networks under Windows.  If a network is found a new menu option will be added under System which will have a description of the type of network.

Additional Topics:
Netware Information
Loading the Network DLL


Netware Information

InfSpy will add the following menu options under System if you are running a Netware Network:

Netware Info - Information on your Preferred server and your workstation, including connection ids.

Netware Connections - Lists all the active connections on your Preferred server.

Print Queue Info - Lists all the Print queues that you have access to as well as the Status and number of jobs in the queue.

Netware Servers - Lists all the Netware Servers on your network regardless of whether you have access to them or an account on them.  The servers that you are connected to will list a connection id.

Show all Netware Objects - One of the most obscure issues under Netware -> BINDERY. This option lists all Netware objects within your universe which are found in the Netware bindery.  This would include Servers, Queues, Groups, Users, Gateways and much more!

Additional Topics:
Details on Netware Objects


Details on Netware objects

InfSpy can provide details on several Netware objects.  To see details simply select the item from any of the Netware menu objects and Double Click your mouse on that object.  A window will appear displaying any additional details.  If no window appears or a "not implemented" message appears this means that there are no details available on that object.

The following objects have additional details:

Netware Users - Shows the full user name and all Netware groups to which they belong.

Netware Groups - Shows the full group name and all members of that group.


Tracing RealTime Information

The tracing feature of InfSpy is still in its fledgling state, however you can select from the following tracing capabilities:

Tracing a Task's Stack.
Tracing Messages to a Task.
Tracing all Windows Messages.
Setting a timed Automatic Refresh of all InfSpy Windows.
Tracing Serial Communications


Tracing a Task's Stack
Tracing a Tasks's Stack

This option allows you to take a snapshot of a given task's stack within Windows.  An application's stack is dynamic, changing every time an application is active, therefore the information you receive may only be correct for the instance of when the snapshot was made.

The stack information provided is as follows for each entry within the stack for the application:

Note: You can not trace messages to InfSpy.

Stack Trace: SS BP CS IP Segment# and Module id.
Stack offsets.
Next CS:IP location.


Tracing Messages to a Task

In order for InfSpy to provide Message Tracing "Load Message Tracing DLL" option must be set under the "Intellib" configuration screen.

To trace messages being sent to a specific task select a task from the Windows Tasks list (invoked from the Spy menu).

When the task you wish to trace has been highlighted, select the Trace menu following by the Trace Stack for a Task sub-menu.

From the Message Trace Selection Screen that will appear, either choose a specific message filter or select the Trace All Message Filter Types option.

Start the trace by selecting the Start button or use Cancel to exit the function without starting a trace.

When the trace starts a Window will appear in InfSpy showing the the number of messages already captured.  In addition, the PauseMessage menu option will appear on InfSpy's menu.

Related Subjects:
Windows Message Filters
Pausing and Restarting a Trace
Examining a Message Trace


Tracing all Windows Messages

In order for InfSpy to provide message tracing the "Load Windows Message Hook Library" option must be set under the "Intellib" configuration screen.

This option traces messages going to all tasks within Windows.

From the Message Trace Selection Screen that will appear, either choose a specific message filter or select the Trace All Message Filter Types option.

Start the trace by selecting the Start button or use Cancel to exit the function without starting a trace.

When the trace starts a Window will appear in InfSpy showing the name of the task being traced as well as the number of messages already captured.  In addition, the PauseMessage menu option will appear on InfSpy's menu.

Note: Messages sent to InfSpy will not be captured.

Related Subjects:
Loading the Windows Message Hook Library	Windows Message Filters
Pausing and Restarting a Trace
Examining a Message Trace


Windows Message Filters

GetMessage Filter (wh_getmessage) -

System Message Filter (wh_sysmsgfilter) -

Standard Message Filter (wh_msgfilter) -

Hardware Message Filter (wh_hardware) -

Mouse Event Filter (wh_mouse) -

Keyboard Event Filter (wh_Keyboard) -

Default Windows Procedure Messages (wh_DefWndProc) -


Pausing and Restarting a Trace

When tracing messages you have the ability to pause and restart the trace.  When a trace starts the PauseTrace menu option will appear on InfSpy's menu, use it to Pause the tracing process indefinitely.

When you Pause a trace the menu option will change to read ReStartTrace.  Selecting this menu option will restart the trace with the same parameters as when it was paused.

When a trace is ended the PauseTrace and ReStartTrace menu option is removed from InfSpy's menu.


Examining a Message Trace

Tracing Windows messages is an art.  You will be suprised at the number of messages required to do the simplest of tasks, however we all know that Windows had a lot of overhead.

There are a lot of Message Spy utilities on the market (Microsoft,Borland,etc..) that provide extremely detailed information regarding each message and the parameters that are passed.  In our case however we simply wanted to provide a concise, easy to read summary of each message to assist you in understanding and debugging your Windows program(s).

First you need to understand the types of messages that you can trace. Use the Windows Message Filters section of this help text to get information on message filters.


Automatic Windows Refresh

One of the most effective ways of tracing Windows activity is to set an automatic timed refresh on any of InfSpy's informative windows. This will cause the contents of any InfSpy window that is active to be completely refreshed based on an interval (in seconds) that you specify.

To set the automatic refresh interval use the InfSpy Preferences screen under the Configure menu option.

To start the automatic refresh option first set the InfSpy windows you want updated as well as their position within the InfSpy frame.  Then select the Timed Refresh (x secs) option from the Trace menu. When selected and active a checkmark will appear next to the menu option.

After the initial interval you will notice that all InfSpy windows will begin automatically refreshing.  To stop the automatic refresh select the Timed Refresh menu option again, the checkmark will disappear.


Tracing Serial Communications

In order for InfSpy to provide Serial Communications tracing the "Load Communications Trace Library" option must be set under the "Intellib" configuration screen.

This option allows you to trace all activity on a serial port or on all serial ports at once.  The activities include:

ReadComm - All data being read from the serial port(s).

WriteComm - All data being written to the serial port(s).

ReadComm,WriteComm - All data being read from and written to the serial port(s).

All activity - All data being read from and written to the serial port(s) as well as all status updates, flushing, opening and closing of the port(s).

You also can optionally show all GetCommError activity, however be warned that most communications programs overuse this function which may cause your trace to quickly fill to capacity.

Each trace entry includes the Serial activity type, the Communications port, the time the activity took place and any data involved in the activity.

All activity data is divided into 80 characters per line to make it more readable.  Ascii characters are shown in ascii and non-readable characters are shown in Hex surrounded by square brackets.

Due to the fact that each communication command is written to InfSpy's screen before being passed forward to Windows, you might notice a delay in your communications program while InfSpy updates its screen.  To reduce the delays to a negligable level we suggest you minimize the Comm Trace window while tracing then maximize it when done.

Note: You should read the additional topic on Communications Trace Errors to help avoid GPFs!.Additional Topics:

Loading the Communications Trace Library
Communications Trace Errors


Communications Trace Errors

Infspy sets its hooks for tracing serial communications into USER.EXE at the exported locations for all 16 communications commands which causes them to be redirected to INFCMDLL.  When a serial communications command is issued to USER.EXE, InfSpy intercepts it, puts it on our screen and then forwards it back to USER.EXE for normal processing.

The procedure is good, provides accurate tracing and is safe... However several things could happen:

1. When attempting to set its hooks into USER.EXE, Infspy may get outright rejection due to other applications having already set their hooks into these calls, specifically programs like EXTRA, PROCOMM, FAXPRO, etc.. essentially any program that fools with Serial communications under Windows potentially can get its hooks into USER.EXE. This may cause INFSPY to get a GPF - NOT PRESENT FAULT when trying to trace serial communications

2. A communications program may get a GPF - KERNEL.EXE when trying to load if Infspy serial trace is active.  Once again the hooks are to blame.

What to do! If you need to trace the serial comm and have experienced problems loading InfSpy comm trace then restart Windows without any applications, load InfSpy and start the serial communications trace, then load your other applications normally.  InfSpy WILL NOT hog the hook and will let other applications share it!


Configuring InfSpy

InfSpy has several configuration options; both for Startup and for standard operation:

Setting Option Preferences
IntelliLib
Set Font for InfSpy Windows
Set Font for Hex Dumps


InfSpy Option Preferences

Default Heap Ordering. Select Address, Size, Module, Handle or Type as the default Heap Sort order for Global Heap List operations.

Windows to load on Startup. Select none, any or all of the listed windows to load automatically when InfSpy is started.

Seconds for Auto-Refresh. Enter the number of seconds between each Auto-Refresh operation.


Set Font for InfSpy Windows

Use the Font Selection window to select the font for all InfSpy windows.

Note: Certain fonts provide TAB operations while others use proportional spacing.


Set Font for Hex Dumps

Use the Font Selection window to select the font for all Hex Dump windows.

Note: Certain fonts provide TAB operations while others use proportional spacing.


Memory Information

InfSpy provides detailed memory information:

- Largest free block of memory (in bytes).
- Maximum memory pages available.
- Maximum memory pages lockable.
- Total linear space.
- Total unlocked pages of memory.
- Free pages.
- Total pages.
- Free linear space.
- Swap file pages.
- Page size (in bytes).


Heap Information

Under Windows the Heap is used to maintain data related to almost every facet of applications, modules, graphics, etc.. Examining the Heap provides you with the ability to actually spy on the data an application may be maintaining in the Heap.

Global Heap
Global Heap for a Selected Module
Heap Information
GDI Local Heap
USER Local Heap
Sort Options


Global Heap

When you choose this option, InfSpy will walk the heap to provide a detailed list of all Heap Entries used under Windows.  You can have this list sorted by Handle, Address, Size, Type or Module.  Building the list can take several seconds, if you choose to Cancel the process using the provided Cancel button then you will be provided with a partial list.

You have the option of building the list for a selected Module, for the GDI local Heap or for the USER local heap, see the Related Subjects choices for more information.

The displayed window contains all valid Local Memory Descriptors for the Global Heap within your Windows environment.  Each program, DLL, task or module that is loaded allocates certain memory areas for its own internal use, such as tables, lists and pointers.

The Items on each line of the list box are:

- System Address for this memory.
- Handle to this global heap memory descriptor.
- Accessed flag.
- Loaded flag.
- Local Heap available flag.
- Size of the allocated memory in bytes.
- Type of Memory descriptor.
- Owner module name and Handle.

In order to further examine each descriptor double click on it.  This will create a memory examination window which will show the contents of those particular memory segments in a Hex/Ascii dump.

Related Subjects:
Hex Contents of a Heap Entry
Local Heap Walk
Cancelling a Heap Examination


Memory Dump
Hex Contents of a Heap Entry

This option is used to view Global Heap entries.  To invoke a memory dump double click on any Heap entry.  A new window will appear showing the Heap values in the following format:

000A 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F ................

- the offset
- 16 byte hex values
- 16 byte ascii values.  All non-terminal characters are replaced with a '.'.

Each memory dump can be retained, minimized or viewed with other memory dumps.  Since the memory dump window is dependant on InfSpy, when you close InfSpy the dump will automatically close.  InfSpy can maintain multiple windows containing Hex dumps so that they may be saved for future viewing or comparison.


Cancelling a Heap Examination

While InfSpy is examining the Heap and building the requested list of Heap entries it displays a status box with a cancel button.  The Heap examination process can take several seconds depending on the scope of the examination, ie: examining the Heap for a single module will take far less time than building an application summary.

If you get tired of waiting for the results of a Heap Examination, select the Cancel button on the Status window.  This will terminate the Heap Examination and will provide you with the results so far.


Local Heap Walk

Certain Global Heap descriptors have Local Heap relationships.  If so, a Global Heap entry will be marked with an 'L' in the 'Loc' column of the Global Heap Walker.

To walk the Local Heap, select the Global Heap entry and then select the 'Local Heap' menu option on the InfSpy menu.  If the Global Heap entry does not have any Local Heap a message will appear to notify you.

Related Subjects:
Hex Contents of a Heap Entry
Cancelling a Heap Examination


Global Heap for a Selected Module

Using this option you can selectively list the Heap entries for any loaded module.  Using the Module selection list box that appears, select the module for which you want Heap information.

Related Subjects:
Hex Contents of a Heap Entry
Cancelling a Heap Examination


Heap Information

The Heap Information screen provides you with a summary of Heap usage and availability:

The percentage of the USER and GDI heap allocation still free.

The Segment handles to the USER and GDI DGroups.

Heap availability, free space and items allocated on the heap.

Select the Ok button to close the Heap Information screen.

Related Subjects:
Hex Contents of a Heap Entry
Cancelling a Heap Examination


GDI Local Heap

This option selects the local GDI heap entries from the heap and presents them in a Window.  These entries include Bitmaps, Device contexts, Fonts and Regions.

Related Subjects:
Hex Contents of a Heap Entry
Cancelling a Heap Examination


USER Local Heap

This option selects the local USER heap entries from the heap and presents them in a Window.  These entries include Bitmaps, Device contexts, Fonts and Regions.

Related Subjects:
Hex Contents of a Heap Entry
Cancelling a Heap Examination


Sort Options

In order to assist you in evaluating your system's Heap, InfSpy has the ability to sort the Heap in various ways:

Sort by Address
Sort by Handle
Sort by Size
Sort by Type
Sort by Module

When you modify the sort option InfSpy will refresh any Heap windows using the new sort option.  In addition, a check mark will be placed by the new sort option and all subsequent Heap dumps will use this sort option.

When InfSpy is loaded it will use the Default Sort Option which is set using the InfSpy Preferences screen under the Configure menu.


Window Positioning
Window Positioning and Activation

Using the Tile, Cascade and Arrange Icons options.
Choosing from the List of InfSpy Windows.


Tiling, Cascading and Icons
Using Tile, Cascade and Arrange Icons

The Tile menu option will cause all active InfSpy windows to equally divide up the InfSpy window space vertically and horizontally between them.

The Cascade menu option will caues all active InfSpy windows to cascade down from the upper left corner of the InfSpy main window.

The Arrange Icons menu option will take all InfSpy windows that are iconized and will arrange them at the bottom of the InfSpy main window.


Choosing from the List of InfSpy Windows

Each screen displayed in InfSpy is considered to be a window.  The Windows menu option of InfSpy contains a list of all InfSpy windows that are currently displayed or iconized.

By selecting one of the windows you will maximize it and make it the active window.


Help on InfSpy

Viewing the About InfSpy screen.
Viewing the Contents of InfSpy Help.


About InfSpy

The About option will display the InfSpy version screen.  Select the Ok button to close the screen.


Contents of InfSpy Help

InfSpy online help contains subject matter related directly to the operation of InfSpy.  The InfSpy.Hlp file should be kept with the InfSpy.Exe module or in the Windows default directory.

The Contents option will load InfSpy.Hlp with the Table of Contents initially visible.


Problems, Errors and GPFs!
Windows NT, OS2, Problems, Errors and GPFs!

This is where we humble ourselves just a little bit....

We have tested InfSpy running under Windows NT and OS2.  With both operating systems Infspy provided near complete information, however there were isolated problems with Windows Classes, Application Summary, Memory Information and Heap Information.  We would appreciate exact feedback of problems you encounter, send us a CompuServe message.

Though InfSpy was written to provide Information on Windows, assist in debugging programs and monitor your overall system, we have found that at times InfSpy can prove to cause some problems.... So rather than have you all calling us and blaming us for the demise of your environment, we thought we would lay our cards on the table and hopefully enlist you to help us solve some problems.

As of this release the following problems exist with InfSpy:

1. The Windows Trace DLL may cause the InfSpy menu to have extra scroll controls and menu options that are in incorrect places.  This is due to the inadvertant interception of Windows messages while tracing them.

2. If you kill InfSpy without letting it do a normal shutdown all the hooks into the Windows environment will remain so most likely other Win apps will get GPFs, so if you kill InfSpy, reboot immediately!

3. The Network DLL is still not quite up to standards. There are still missing Netware calls and no Lantastic support whatsoever.

4. The Heap Spy and Application Summary take too long to scan the Heap and build a sorted list of entries.

5. If you are tracing messages for ALL windows and try certain operations with InfSpy you may get a GPF.  We have attempted to isolate the InfSpy calls however a few still remain which cause integrity problems. This is rare.

6. "Not Present Fault" - When trying to invoke the Communications trace you may get this GPF.  Infspy was unable to set its hooks into USER.EXE due to other programs already making claim to those hook points. See section on Communications Trace Errors.

Enjoy the program and give us feedback!


Version History

v2.01 - 6/15/94
 - Added Network Information DLL.
 - Added Serial Communications Trace DLL.
 - Added Intellilib capabilities.

v2.00 - 5/15/94
 - Changed to MDI application will seperate window controls.
 - Added sort options to Global Heap display
 - Added Open Files, Device Redirection, Dos Memory, Dos Device Drivers, Environment, Window Class, MultiMedia, Application Summary and System Information windows.
 - Added Automatic Refresh feature.
 - Added Windows Shutdown, Restart and Reboot Actions.
 - Rewrote Print and SaveAs capabilities.

v1.20 - 4/1/94
 - Include DPMI trace info.

v1.14 - 2/8/94
 - Updated List box positioning

v1.00 - 9/1/93
 - First Version


Register
Register this Program

This version of InfSpy is Unregistered.  You may use this program without restriction, however we expect that if you like InfSpy that you will register the program with the authors.

To Register:

A. Register on CompuServe's Shareware Registration Forum:  GO SWREG.  InfSpy Registration ID: 1846

B. Send a cheque or money order for $6.99 to:

Dean Software Design
P.O. Box 2331
Everett, WA 98203-0331

(Canada/Mexico add $0.50 for postage, all other countries add $1.50 for postage please!)

Your registration will entitle you to:

1. A registered copy of the latest version of InfSpy.
2. Other fine shareware by Dean Software Design.
3. Support.

Please use the following form and allow 1-2 weeks for delivery.

===============================

InfSpy Registration

Name:

Company:

Register to:

Address:

City:

Phone:

Number of Copies: _________

Diskette Size: ____________

Version: Latest _______ Specific _______

Total: $___________________

Special Instructions:

===============================

Do you have any questions or comments? Send us a letter or use EMail on CompuServe address 75240,65.  We will promptly get back to you!

Disclaimer - Registration Agreement
===================================

Users of InfSpy must accept this disclaimer of warranty:

"InfSpy is supplied as is. The author disclaims all warranties, expressed or implied, including, without limitation, the warranties of merchantability and of fitness for any purpose. The author assumes no liability for damages, direct or consequential, which may result from the use of InfSpy."

InfSpy is a "shareware program" and is provided at no charge to the user for evaluation. Feel free to share it with your friends, but please do not give it away altered or as part of another system. The essence of "user-supported" software is to provide personal computer users with quality software without high prices, and yet to provide incentive for programmers to continue to develop new products. If you find this program useful and find that you are using InfSpy and continue to use InfSpy after a reasonable trial period, you must register it!  The registration fee will license one copy for use on any one computer at any one time.

Commercial users of InfSpy must register and pay for their copies of InfSpy within 30 days of first use or their license is withdrawn. Site-License arrangements may be made by contacting Dean Software Design.  In general, multiple copies of InfSpy can be registered at the following rates:

 1 - 10 copies:   $  6.99 per copy
11 - 20 copies:   $ 65.00 + $6.50 per copy over 10
21 - 50 copies:   $120.00 + $6.00 per copy over 20
51 - 100 copies:  $275.00 + $5.50 per copy over 50
101+ copies:      $500.00 (site license, unlimited)

Anyone distributing InfSpy for any kind of remuneration must first contact Dean Software Design at the indicated address for authorization. This authorization will be automatically granted to distributors recognized by the (ASP) as adhering to its guidelines for shareware distributors, and such distributors may begin offering InfSpy immediately (However Dean Software Design must still be advised so that the distributor can be kept up-to-date with the latest version of InfSpy).

You are encouraged to pass a copy of InfSpy along to your friends for evaluation. Please encourage them to register their copy if they find that they can use it.

All registers user receive free technical support for 90 days from the date of registration. Also all registered users receive a free upgrade to the next version of this program when that version becomes available. To report bugs, receive help and bug fixes please send a CompuServe message via CompuServe Mail to:

Dean Software Design
[75240,65]

or, if you do not have access to CompuServe, write to us!

Definition Of Shareware
=======================

Shareware distribution gives users a chance to try software before buying it. If you try a Shareware program and continue using it, you are expected to register. Individual programs differ on details -- some request registration while others require it, some specify a maximum trial period. With registration, you get anything from the simple right to continue using the software to an updated program with printed manual.

Copyright laws apply to both Shareware and commercial software, and the copyright holder retains all rights, with a few specific exceptions as stated below. Shareware authors are accomplished programmers, just like commercial authors, and the programs are of comparable quality. (In both cases, there are good programs and bad ones!) The main difference is in the method of distribution. The author specifically grants the right to copy and distribute the software, either to all and sundry or to a specific group. For example, some authors require written permission before a commercial disk vendor may copy their Shareware.

Shareware is a distribution method, not a type of software. You should find software that suits your needs and pocketbook, whether it's commercial or Shareware. The Shareware system makes fitting your needs easier, because you can try before you buy. And because the overhead is low, prices are low also. Shareware has the ultimate money-back guarantee - if you don't use the product, you don't pay for it.


Products
Shareware Products by Dean Software Design

InfView

Windows Ascii / Hex / Bmp / Pcx / Gif / Zip / Lzh File Viewer. View multiple files. No file size limit.

This MDI application will take a view 'snapshot' of any file and load it into a viewing window - Changing the file on disk does not affect the snapshot since the entire file is in memory.

View 16 or 256 color BMP / PCX and GIF images directly next to their Ascii/Hex dump.

List files within Zip / Lzh compressed data sets and then call your Zip/Lzh utility directly to decompress specific Zipfiles right into the Viewer!

Has Disk / Network file and word search that builds a search list of all files that match your search criteria - will even look in Zip / Lzh files automatically!

Formatted printing in Ascii or Hex mode.  Cut to a file or to the Clipboard. Identifies the type of file and can execute files directly or by Windows association.

Uses IntelliLib (tm) technology to let you dynamically customize the application by selecting which DLLs get loaded at runtime.

InfSpy

Windows Environment Spy Utility.  This application provides customized views of Heap, Windows, Tasks, Modules, Open Files, Stack, Dos Information, Windows Information, Environment Info and Timers loaded under Windows.

Provides detailed Hex dumps of Heap entries as well as Memory usage information.

Has Task Terminator and Module Unload features to 'clean up' your environment as well as Windows Rapid Shutdown, Windows Restart and System Reboot menu options.

The Auto-Refresh timer lets you put InfSpy in a Real-Time diagnostic mode where it will continually update the Window(s) of your choice on a timed basis.

InfMon

Windows Environment Monitor.  Allows you to set up Alarm levels for Windows Resources, Windows Memory and up to 4 Local or Network Disk Drives.

When any of these fall below your alarm level an informative Alarm Box appears on the screen accompanied with either a tone or a WAV file.

You can set this utility to run as a visible Resource Monitor, a Clock or as an invisible application.

Helps prevent system lock-ups or GPFs due to low Resources or Memory!

InfTerm

Windows Inactivity Monitor.  This handly utility can be loaded on any standalone or network user to assist in maintaining terminal security after standard working hours.

The user enters his working days and working hours.  Infterm constantly monitors the time and after a certain amount of inactivity after working hours, Infterm will either shut down Windows and run a Batch file or program or Infterm will shut down Windows and reboot the PC.

This utility is not affected by screen savers and will shut down all applications including DOS sessions.

Great tool for Network administrators that do want people to stay on all night.  Also great for security administrators for the same reason!

Registration Information

To Register send a cheque or money order for the Purchase Amount to:

Dean Software Design
P.O. Box 2331
Everett, WA 98203-0331

(Canada/Mexico add $0.50 for postage, all other countries add $1.50 for postage please!)

Please use the following form and allow 1-2 weeks for delivery.

===============================

InfView: $6.99 - No. of Copies _____

InfSpy:  $6.99 - No. of Copies _____

InfMon:  $6.99 - No. of Copies _____

InfTerm: $6.99 - No. of Copies _____

Any 2 Utilities: $10.99 - No. of Copies _____ (Specify)

Any 3 Utilities: $13.99 - No. of Copies _____ (Specify)

All 4 Utilities!: $15.99 - No. of Copies _____

Name:

Company:

Register to:

Address:

City\Country:

Phone\Fax:

Diskette Size: ____________

Special Instructions:

Special Shipping: Can $0.50 Int $1.50: _______

Total: $________________

For Information on Multiple user or Corporate Registration please write or EMAIL us on Compuserve 75240,65 and see the Registration Information section in the Online help.